feat(mac): Cross-platform keyboard/mouse control via Hammerspoon#278
Merged
Conversation
|
|
Implements macOS equivalent to Windows AHK input control: - Mouse movement via Cmd+IJKL (smooth, accelerated) - Mouse clicks via Cmd+U/O/M (left/right/middle) - Scrolling via Alt+U/O and Cmd+H/P - Text navigation via Alt+IJKL (word/line movement) - Text selection shortcuts via Alt+W/A Platform detection in Run.vue automatically chooses: - Windows: AutoHotkey (existing) - macOS: Hammerspoon (new) Configuration mirrors AHK settings in const.ahk for consistency. Installation scripts handle Hammerspoon setup via Homebrew. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
seonglae
force-pushed
the
feature/cross-platform-input
branch
from
February 4, 2026 21:41
9e0ee59 to
d7a875b
Compare
seonglae
added a commit
that referenced
this pull request
Apr 11, 2026
…278) Implements macOS equivalent to Windows AHK input control: - Mouse movement via Cmd+IJKL (smooth, accelerated) - Mouse clicks via Cmd+U/O/M (left/right/middle) - Scrolling via Alt+U/O and Cmd+H/P - Text navigation via Alt+IJKL (word/line movement) - Text selection shortcuts via Alt+W/A Platform detection in Run.vue automatically chooses: - Windows: AutoHotkey (existing) - macOS: Hammerspoon (new) Configuration mirrors AHK settings in const.ahk for consistency. Installation scripts handle Hammerspoon setup via Homebrew. Co-authored-by: seonglae <seonglae@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
seonglae
added a commit
that referenced
this pull request
May 14, 2026
* deps: Update dependency nuxt to v3 * deps: Update dependency electron to v20.3.7 * deps: Update all non-major dependencies * chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2 Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2. - [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases) - [Commits](SamVerschueren/decode-uri-component@v0.2.0...v0.2.2) --- updated-dependencies: - dependency-name: decode-uri-component dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update dependency @types/node to v18.11.18 * chore(deps): bump json5 from 1.0.1 to 1.0.2 Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](json5/json5@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update Node.js to >=v18.13.0 * deps: Update all non-major dependencies * deps: Update dependency electron to v20.3.10 * deps: Update all non-major dependencies * chore(deps): bump jszip from 3.7.1 to 3.10.1 Bumps [jszip](https://github.com/Stuk/jszip) from 3.7.1 to 3.10.1. - [Release notes](https://github.com/Stuk/jszip/releases) - [Changelog](https://github.com/Stuk/jszip/blob/main/CHANGES.md) - [Commits](Stuk/jszip@v3.7.1...v3.10.1) --- updated-dependencies: - dependency-name: jszip dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/kornelski/http-cache-semantics/releases) - [Commits](kornelski/http-cache-semantics@v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: http-cache-semantics dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update dependency vuetify to v3 * deps: Update all non-major dependencies * deps: Update dependency @nuxt/typescript-build to v3 * deps: Update all non-major dependencies * deps: Update dependency ini to v4 * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update dependency electron to v24 * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * meta: update weekly schedule renovate.json5 * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update dependency @types/node to v18.16.13 * deps: Update all non-major dependencies * deps: Update dependency electron to v25 * deps: Update all non-major dependencies * chore(deps): bump vite from 4.0.4 to 4.3.9 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.0.4 to 4.3.9. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.3.9/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update dependency electron-builder to v24 * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * fix: remove node from renovate.json5 * chore(deps): bump semver from 5.7.1 to 5.7.2 Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](npm/node-semver@v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * feat: automerge added to renovate.json5 * deps: Update all non-major dependencies * deps: Update dependency electron to v26 * deps: Update dependency @types/node to v18.17.6 * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update dependency @types/node to v18.17.13 * deps: Update all non-major dependencies * deps: Update actions/checkout action to v4 * deps: Update dependency @types/node to v18.17.15 * deps: Update all non-major dependencies * deps: Update all non-major dependencies * deps: Update all non-major dependencies * docs: update README.md for meta intuiter info * deps: Update all non-major dependencies * chore(deps): bump postcss from 8.4.19 to 8.4.31 Bumps [postcss](https://github.com/postcss/postcss) from 8.4.19 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.4.19...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update dependency electron to v27 * deps: Update Node.js to >=18.18.2 * chore(deps): bump undici from 5.23.0 to 5.26.3 Bumps [undici](https://github.com/nodejs/undici) from 5.23.0 to 5.26.3. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v5.23.0...v5.26.3) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump @babel/traverse from 7.22.11 to 7.23.2 Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.11 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update dependency electron to v27.0.2 * chore(deps): bump browserify-sign from 4.2.1 to 4.2.2 Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2. - [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md) - [Commits](browserify/browserify-sign@v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: browserify-sign dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Update all non-major dependencies * deps: Update Node.js to v20 * deps: Update actions/setup-node action to v4 * deps: Update all non-major dependencies * chore(deps): bump vite from 4.3.9 to 4.5.2 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.9 to 4.5.2. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Delete .github/workflows/semgrep.yml * chore(deps): bump undici from 5.26.3 to 5.28.3 Bumps [undici](https://github.com/nodejs/undici) from 5.26.3 to 5.28.3. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v5.26.3...v5.28.3) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump ip from 2.0.0 to 2.0.1 Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1. - [Commits](indutny/node-ip@v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 4.5.2 to 4.5.3 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.2 to 4.5.3. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.3/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump undici from 5.28.3 to 5.28.4 Bumps [undici](https://github.com/nodejs/undici) from 5.28.3 to 5.28.4. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v5.28.3...v5.28.4) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump tar from 6.1.11 to 6.2.1 Bumps [tar](https://github.com/isaacs/node-tar) from 6.1.11 to 6.2.1. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v6.1.11...v6.2.1) --- updated-dependencies: - dependency-name: tar dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump ejs from 3.1.9 to 3.1.10 Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10. - [Release notes](https://github.com/mde/ejs/releases) - [Commits](mde/ejs@v3.1.9...v3.1.10) --- updated-dependencies: - dependency-name: ejs dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump ws from 8.14.2 to 8.17.1 Bumps [ws](https://github.com/websockets/ws) from 8.14.2 to 8.17.1. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@8.14.2...8.17.1) --- updated-dependencies: - dependency-name: ws dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps-dev): bump nuxt from 3.8.0 to 3.12.4 Bumps [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) from 3.8.0 to 3.12.4. - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v3.12.4/packages/nuxt) --- updated-dependencies: - dependency-name: nuxt dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps-dev): bump webpack from 4.47.0 to 5.94.0 Bumps [webpack](https://github.com/webpack/webpack) from 4.47.0 to 5.94.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](webpack/webpack@v4.47.0...v5.94.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump micromatch from 4.0.4 to 4.0.8 Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.4 to 4.0.8. - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](micromatch/micromatch@4.0.4...4.0.8) --- updated-dependencies: - dependency-name: micromatch dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 5.3.5 to 5.4.6 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.5 to 5.4.6. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump serve-static from 1.15.0 to 1.16.2 Bumps [serve-static](https://github.com/expressjs/serve-static) from 1.15.0 to 1.16.2. - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md) - [Commits](expressjs/serve-static@v1.15.0...v1.16.2) --- updated-dependencies: - dependency-name: serve-static dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump rollup from 4.20.0 to 4.22.4 Bumps [rollup](https://github.com/rollup/rollup) from 4.20.0 to 4.22.4. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](rollup/rollup@v4.20.0...v4.22.4) --- updated-dependencies: - dependency-name: rollup dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 5.4.6 to 5.4.14 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.6 to 5.4.14. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump undici from 5.28.4 to 5.28.5 Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v5.28.4...v5.28.5) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump serialize-javascript from 6.0.1 to 6.0.2 Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](yahoo/serialize-javascript@v6.0.1...v6.0.2) --- updated-dependencies: - dependency-name: serialize-javascript dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps-dev): bump nuxt from 3.12.4 to 3.16.0 Bumps [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) from 3.12.4 to 3.16.0. - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v3.16.0/packages/nuxt) --- updated-dependencies: - dependency-name: nuxt dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 6.2.2 to 6.2.3 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.2 to 6.2.3. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 6.2.3 to 6.2.4 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.4. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.4/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.4/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 6.2.4 to 6.2.5 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.4 to 6.2.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.2.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 6.2.5 to 6.2.6 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.5 to 6.2.6. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.2.6 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 6.2.6 to 6.3.4 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.6 to 6.3.4. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.3.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * feat(ui): add documentation tab * fix: keep screen saver active when launching * feat(custom-hotkeys): allow win+1..0 app shortcuts * feat: add CapsLock toggle for shortcuts * refactor: update resources/ahk/src/win/app_shortcut.ahk Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor: update resources/ahk/runner.ahk Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: update src/renderer/components/templates/Custom.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor: update resources/ahk/src/win/global_win.ahk Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: remove VirtualDesktopAccessor dll * feat: add auto update support * chore(deps-dev): bump electron from 27.0.3 to 28.3.2 Bumps [electron](https://github.com/electron/electron) from 27.0.3 to 28.3.2. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](electron/electron@v27.0.3...v28.3.2) --- updated-dependencies: - dependency-name: electron dependency-version: 28.3.2 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump form-data from 4.0.0 to 4.0.4 --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump tmp from 0.2.1 to 0.2.4 Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.1 to 0.2.4. - [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md) - [Commits](raszi/node-tmp@v0.2.1...v0.2.4) --- updated-dependencies: - dependency-name: tmp dependency-version: 0.2.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps-dev): bump electron from 28.3.2 to 35.7.5 Bumps [electron](https://github.com/electron/electron) from 28.3.2 to 35.7.5. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](electron/electron@v28.3.2...v35.7.5) --- updated-dependencies: - dependency-name: electron dependency-version: 35.7.5 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump devalue from 5.1.1 to 5.3.2 Bumps [devalue](https://github.com/sveltejs/devalue) from 5.1.1 to 5.3.2. - [Release notes](https://github.com/sveltejs/devalue/releases) - [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md) - [Commits](sveltejs/devalue@v5.1.1...v5.3.2) --- updated-dependencies: - dependency-name: devalue dependency-version: 5.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 6.3.4 to 6.3.6 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.4 to 6.3.6. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.3.6/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.3.6/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.3.6 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps-dev): bump nuxt from 3.16.0 to 3.19.0 Bumps [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) from 3.16.0 to 3.19.0. - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v3.19.0/packages/nuxt) --- updated-dependencies: - dependency-name: nuxt dependency-version: 3.19.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump vite from 7.1.5 to 7.1.11 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.5 to 7.1.11. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v7.1.11/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 7.1.11 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump @nuxt/devtools from 2.6.3 to 2.7.0 Bumps [@nuxt/devtools](https://github.com/nuxt/devtools/tree/HEAD/packages/devtools) from 2.6.3 to 2.7.0. - [Release notes](https://github.com/nuxt/devtools/releases) - [Changelog](https://github.com/nuxt/devtools/blob/main/CHANGELOG.md) - [Commits](https://github.com/nuxt/devtools/commits/v2.7.0/packages/devtools) --- updated-dependencies: - dependency-name: "@nuxt/devtools" dependency-version: 2.7.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump js-yaml from 4.1.0 to 4.1.1 Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): bump node-forge from 1.3.1 to 1.3.2 (#273) Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2. - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](digitalbazaar/forge@v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: node-forge dependency-version: 1.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump devalue from 5.3.2 to 5.6.2 (#274) Bumps [devalue](https://github.com/sveltejs/devalue) from 5.3.2 to 5.6.2. - [Release notes](https://github.com/sveltejs/devalue/releases) - [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md) - [Commits](sveltejs/devalue@v5.3.2...v5.6.2) --- updated-dependencies: - dependency-name: devalue dependency-version: 5.6.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump h3 from 1.15.4 to 1.15.5 (#275) Bumps [h3](https://github.com/h3js/h3) from 1.15.4 to 1.15.5. - [Release notes](https://github.com/h3js/h3/releases) - [Changelog](https://github.com/h3js/h3/blob/v1.15.5/CHANGELOG.md) - [Commits](h3js/h3@v1.15.4...v1.15.5) --- updated-dependencies: - dependency-name: h3 dependency-version: 1.15.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lodash from 4.17.21 to 4.17.23 (#276) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](lodash/lodash@4.17.21...4.17.23) --- updated-dependencies: - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * experiment: tauri v2 prototype - Add Tauri v2 Rust backend with AHK process management - Create tauri.conf.json configuration - Add Vue 3 + Vuetify frontend in src-vue/ - Implement spawn_ahk, kill_ahk, restart_ahk commands - Document migration notes and benefits Bundle size: ~10-15MB vs ~150MB (Electron) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: move AHK to packages/ with minimal changes (#277) - Move resources/ahk to packages/ahk - Add packages/ahk-builder for AHK compilation - Add workspaces to package.json - Update builder.config.js path - Keep src/renderer and electron-nuxt intact This is a minimal restructure that organizes AHK into a package while maintaining full compatibility with the existing build system. Co-authored-by: seonglae <seonglae@gmail.com> * experiment: electron-vite prototype (#279) - Add electron-vite configuration - Create TypeScript main process with AHK spawning - Add preload script with IPC APIs - Create Vue 3 + Vuetify renderer - Document migration notes Co-authored-by: seonglae <seonglae@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * feat(mac): add cross-platform keyboard/mouse control via Hammerspoon (#278) Implements macOS equivalent to Windows AHK input control: - Mouse movement via Cmd+IJKL (smooth, accelerated) - Mouse clicks via Cmd+U/O/M (left/right/middle) - Scrolling via Alt+U/O and Cmd+H/P - Text navigation via Alt+IJKL (word/line movement) - Text selection shortcuts via Alt+W/A Platform detection in Run.vue automatically chooses: - Windows: AutoHotkey (existing) - macOS: Hammerspoon (new) Configuration mirrors AHK settings in const.ahk for consistency. Installation scripts handle Hammerspoon setup via Homebrew. Co-authored-by: seonglae <seonglae@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * fix(tauri): fix Hammerspoon integration and UI issues - Fix Hammerspoon check to not fail when not installed - Add process plugin for exit functionality - Fix dancing button size to 200x200 with centered play icon - Fix transparent window and border-radius for rounded corners - Add uppercase tabs and proper title styling - Update capabilities with process permissions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): restore original design and add Custom tab UI - Restore title to original: "Intuit Manager" with text-uppercase - Fix Exit button color (remove bg class, use color prop) - Add Custom tab with Cmd+1-0 text fields like original - Keep other tabs as "Developing" placeholder Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): restore original button shape and implement all tabs - Fix dancing button to original 200x60 shape (not 200x200) - Make "INTUIT" bold in title - Option tab: startup/menubar/notifications switches - Shortcut tab: keyboard shortcuts table - Extension tab: mode list (text/mouse/window) - Custom tab: Cmd+1-0 path fields Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: migrate from Vue/Vuetify to React/Tailwind - Replace Vue with React - Use Tailwind CSS utility classes (no custom CSS) - Implement all tabs with center alignment - Original dancing button (200x60) - Title: bold INTUIT, light MANAGER Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): remove Exit button border Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): add button colors and fix window transparency - Add teal/cyan colors to dancing button - Ensure html/body/root have transparent backgrounds - Fix rounded corners Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): add explicit white text color and fix header - Add text-white to root container - Fix header background color - Remove custom button colors (use defaults) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): restore original title format - Add space between Intuit and Manager - Remove bold from Intuit (keep light on Manager) - Match original: "INTUIT MANAGER" Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): INTUIT bold, no space, MANAGER light Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): enforce minimum height 600px Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: use Tailwind @apply instead of raw CSS Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ui): use fixed positioning for full window height Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: add src-tauri/target to gitignore * fix(ci): add .npmrc with legacy-peer-deps to resolve npm ci failure The Nuxt 2 leftover devDependency @nuxtjs/composition-api requires peer nuxt@^2.15 while the project upgraded to nuxt@3.19.0, causing ERESOLVE during npm ci on CI. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ci): remove darwin-only os field from mac-input workspace The "os": ["darwin"] restriction caused `npm ci` to fail with EBADPLATFORM on Linux/Windows CI runners. The package only contains manually-invoked Hammerspoon install scripts (no postinstall), so removing the restriction lets it install harmlessly on all platforms without changing actual behavior. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ci): drop darwin os field from mac-input entry in package-lock The lockfile preserved the old "os": ["darwin"] constraint, which npm ci treats as authoritative. Removing it from package-lock.json so the EBADPLATFORM error on Linux CI is actually resolved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ci): regenerate package-lock.json to include all platform binaries The previous lockfile was generated on darwin and was missing platform-specific optional dependencies (e.g. @rollup/rollup-linux-x64-gnu) due to npm bug #4828. This caused vite build to fail on Linux runners with "Cannot find module @rollup/rollup-linux-x64-gnu". Regenerated the lockfile from scratch so it includes all platform variants, allowing npm ci to install the correct rollup binary on each runner OS. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ci): install Tauri Linux system deps in test job The test job runs on ubuntu-latest and runs `cargo check` against the Tauri Rust crates, which depend on glib-sys / gobject-sys / webkit2gtk. Without libwebkit2gtk-4.1-dev, libappindicator3-dev, librsvg2-dev, and patchelf installed, pkg-config can't find glib-2.0 / gobject-2.0 and the build script fails. The build job already has this step; mirroring it into the test job. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ci): use tauri CLI binary instead of cargo subcommand The workflow installs Tauri CLI via `npm install -g @tauri-apps/cli`, which exposes a `tauri` binary, not the `cargo tauri` subcommand. Calling `cargo tauri build` therefore failed with "no such command: tauri" on all four build matrix platforms. Switched to `tauri build --target ...` to use the globally-installed npm binary directly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: seonglae <seonglae@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Seonglae Cho <seonglae.cho@holisticai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@intuiter/mac-inputpackage with modular Lua configurationFeatures
Mouse Control (Cmd + IJKL)
Mouse Clicks
Scrolling
Text Navigation (Alt + IJKL)
Text Selection
Architecture
Platform Detection
Run.vue now detects the OS and uses:
Test plan
Prerequisites for macOS
brew install --cask hammerspoonGenerated with Claude Code